#

THE ATARI 6502 DISASSEMBLER

##

System And User Equates

###

System Equates

All known OS and Hardware equates are defined in a file called ATARI.EQU. This file contains all the system equates that DIS6502 may need when disassembling a binary file. This file has a special format so DIS6502 knows for each equates if it is an address or a value. DIS6502 has to know it since an address equate can be used in an instruction like LDA or JMP while a value equate can not.

Use '=' to define an address and '#' to define a value.

Syntax example follows:

ICAX1 # $0A
ICAX2 # $0B
PCOLR0 = $02C0
PCOLR1 = $02C1

ATARI.EQU should contain only program independant equates. If you need to define equates for a specific binary file, you should do it with the Labels menu because those labels are User Equates.

###

User Equates

The Label menu lets you clear, define, load and save equates on a per binary file basis. You can have many user equate files (for example one for each program you are disassembling).

In our RAMDISK.COM example, we see that address $3B5D is the start address of the program because this address appears in the second segment at address $02E0.

Select "Edit..." option from "Labels" menu. A dialog box appears. At this time, there is no labels defined. Enter 3B5D in Addr field and START in Label field and click on Add/Modify button. Then select OK.

Now, each time the address 3B5D appears in the listing, DIS6502 replaces it by its corresponding label START.

You can define a label with an offset. For example, if you see that address 3B5E is referenced in the disassembly listing, you could either define another label like BEGIN or use START with an offset. In the previous dialog box, enter 3B5E in Addr field and START+1 in label field.

This will tell DIS6502 to replace all addresses 3B5E by START+1 but DIS6502 won't define this label because it can not write START+1 = $3B5E in the disassembly listing. Only START should be defined. DIS6502 expects that you define START just as we did previously.